package org.harryrose.resultkit.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.harryrose.resultkit.converters.StringDataConverter;
import org.harryrose.resultkit.converters.DefaultStringDataConverter;

/**
 * Annotation that marks a variable to be saved as a result of a simulation.
 * @author harry
 *
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Result{
	/**
	 * Name to save the variable as (defaults to the name of the variable) 
	 * @return
	 */
	public String name() default "";
	/**
	 * Headings for columns (first dimension) of the variable.
	 */
	public String[] headings() default {};
	
	public Class<? extends StringDataConverter> dataConverter() default DefaultStringDataConverter.class;
}
